namespace SolidMvvmInterfaces {
	using System;

	//TODO: Rename this namespace to be SolidMvvmInterfaces

	/// <summary>
	///     A file-based logger interface.
	/// </summary>
	public interface ILogger : IDisposable {
		/// <summary>
		/// </summary>
		string FilePathWithFileExtension { get; }

		/// <summary>
		///     Write a message to the log.
		/// </summary>
		void AddMessage(string publicMessage, string privateMessageOrNull);

		/// <summary>
		///     Return a copy of the log file as a string.
		/// </summary>
		/// <returns> </returns>
		string GetLogFileAsString();

		/// <summary>
		///     The log file path depends on which date you need to see. For example, it may make a new log file every month.
		/// </summary>
		string GetLogFilePath(DateTime anyUniversalTime);
	}
}
